void
duplicate_init(const char *args)
{
- const char *p;
-
duplicate_shortname = snopt != NULL;
duplicate_location = lcopt != NULL;
}
filter_vecs_t duplicate_vecs = {
duplicate_init,
duplicate_process,
- duplicate_deinit
+ duplicate_deinit,
+ dup_args
};
char *svecname = strtok(v, ",");
while (vec->vec) {
- if (strcmp(svecname, vec->name) == 0) {
- char * res = strchr(vecname, ',');
- if (res)
- *opts = strchr(vecname, ',')+1;
- else
- *opts = NULL;
- free(v);
- return vec->vec;
+ arglist_t *ap;
+ char *res;
+
+ if (strcmp(svecname, vec->name)) {
+ vec++;
+ continue;
}
- vec++;
+
+ res = strchr(vecname, ',');
+ if (res) {
+ *opts = strchr(vecname, ',')+1;
+
+ if (vec->vec->args) {
+ for (ap = vec->vec->args; ap->argstring; ap++){
+ *ap->argval = get_option(*opts, ap->argstring);
+ }
+ }
+ } else {
+ *opts = NULL;
+ }
+
+ free(v);
+ return vec->vec;
+
}
free(v);
return NULL;